<?php
// +----------------------------------------------------------------------
// | Author: sam <yimingsha@qq.com>
// +----------------------------------------------------------------------
namespace Sam;
use think\facade\Cache;
//缓存类
class SamCache {
	static $config =array(
		'login_pwd_err_count' => array('loginPwdErrCount',3600),

		'sms_verify_code' => array('smsVerifyCode',60*30),
		'sms_send_limit_count' => array('smsSendLimitCount'),//控制短信发送数量,过期时间为凌晨12点。
		'sms_send_limit_time' => array('smsSendLimitTime',60),//控制短信发送频率
		'member_pwd_regtime' => array('memberPwdRegtime',30*60),//解密logintoken使用的数据
	);

	/**
	 * 获取key 和 缓存时间
	 * @param  [type] $flag 配置的数组上标
	 * @param  [type] $add  拼接key
	 * @return [type]       [description]
	 */
	static function getKey($flag,$add=''){
		$data = self::$config[$flag];
		if( $add ){
			$data[0] =$data[0].'_'.$add;
		}
		// $data[0] = False;
		return $data;
	}

	/**
	 * @param mixed $flag 配置的数组上标
	 * @param mixed $add  拼接key
	 * @param mixed $value 缓存值 默认值为 获取，null为删除，其它值为存储
	 * @param mixed $time  过期时间
	 * @return mixed
	 */
	static function data($flag,$add='',$value='',$time=null){

		$data = self::$config[$flag];
		if( !$data ){
			return false;
		}
		if( $add ){
			$data[0] =$data[0].'_'.$add;
		}
		if($time){
			$expire_time = (int) $time;
		}else if( isset( $data[1] ) ){
			$expire_time= $data[1];
		}else{
			$expire_time= null;

		}
		if( $value === ''){
			return Cache::get($data[0]);
		}
		if( $value === null ){
			return Cache::rm($data[0]);
		}
		return Cache::set( $data[0] ,$value,$expire_time);

	}




}